package org.zw.store;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@SpringBootApplication
public class StoreUserApp {
    public static void main(String[] args) {
        SpringApplication.run(StoreUserApp.class,args);
    }

    //可以在启动类中配置允许跨域(springboot的启动类本身就是配置类)
    @Bean //为spring配置一个名称为webMvcConfigurer的bean，这个bean是springmvc的配置类，在其中可以配置跨域
    public WebMvcConfigurer webMvcConfigurer(){  //以方法名作为bean的名字

        //创建了WebMvcConfigurer的无名子类对象(匿名类对象)
        return new WebMvcConfigurer() {
            //该配置中的addCorsMappings专用于配置跨域
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**")//允许任何地址样式的请求跨域
                        .allowedOriginPatterns("*")//请求本服务端的网页资源的任何来源主机不受跨域影响
                        .allowedHeaders("*")//跨域对任何请求头不受限制
                        .allowedMethods("*")//允许任何请求方式跨域
                        .allowCredentials(false);//是否允许使用session进行用户追踪
            }
        };
    }

}
